JavaScript流程控制语句

流程控制语句,用于控制程序的执行流程。主要有两部分类容条件语句循环语句

一、条件语句

  1. if 语句
    if 语句用于在条件满足时执行特定代码块。语法如下:

    if (condition) {
    // code to be executed if condition is true
    }
    

    示例代码:

    let age = 18;
    if (age >= 18) {
    console.log("你已经成年了");
    }
    
  2. if...else 语句
    if...else 语句用于在条件不满足时执行特定代码块。语法如下:

    if (condition) {
    // code to be executed if condition is true
    } else {
    // code to be executed if condition is false
    }
    

    示例代码:

    // 请输入用户的年龄
    var age = Number(prompt('请输入年龄'));
    // 进行判断
    if (age >= 18 && age <= 70) {
    alert('您的年龄符合标准,可以申领驾照');
    } else {
    alert('您的年龄不符合标准,不能申领驾照');
    }
    
  3. if...else if...else 语句
    if...else if...else 语句用于在多个条件下执行不同的代码块。语法如下:

    if (condition1) {
    // code to be executed if condition1 is true
    } else if (condition2) {
    // code to be executed if neither condition1 nor condition2 is true
    }
    

    示例代码1:判断成绩

    let score = 90;
    if (score >= 90) {
    console.log("优秀");
    } else if (score >= 80) {
    console.log("良好");
    } else if (score >= 60) {
    console.log("及格");
    } else {
    console.log("不及格");
    }
    

    示例代码2:水仙花数(1个三位数,它的每个数位的数字的立方和等于它本身,比如:153)。

    // 要求用户输入一个三位数
    var n = Number(prompt('请输入一个三位数'));
    // 对用户输入的数值,进行合法性的验证
    if (!isNaN(n) && 100 <= n && n <= 999) {
    // 当用户输入的数字是合法
    // 数学方法
    // 百位
    var a = Math.floor(n / 100);
    // 十位
    var b = Math.floor(n / 10) % 10;
    // 各位
    var c = n % 10;
    // 根据水仙花数的条件进行判断
    if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == n) {
       alert('这个数字是水仙花数');
    } else {
       alert('这个数字不是水仙花数');
    }
    } else {
    // 输入不合法
    alert('您输入的数字不合法的');
    }
    
  4. switch语句
    switch语句由多个case分支和一个可选的default分支组成。switch语句的基本语法如下:

    switch (expression) {
    case value1:
     // 执行语句块 1
     break;
    case value2:
     // 执行语句块 2
     break;
    ...
    default:
     // 执行默认语句块
     break;
    }
    

    注意:调用break来跳出switch语句体,如果没有break,后面所有case都被视为匹配
    示例代码:输入月份,提示当月天数

    // 让用户输入年份
    var year = Number(prompt('请输入一个年份'));
    // 让用户输入一个月份
    var month = Number(prompt('请输入一个月份'));
    // 根据月份来分类讨论
    switch (month) {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
     alert('这个月有31天');
     break;
    case 4:
    case 6:
    case 9:
    case 11:
     alert('这个月有30天');
     break;
    case 2:
     // 根据用户输入的year计算一下当年是不是闰年
     if (year % 4 == 0 && year % 100 != 0 || year % 100 == 0 && year % 400 == 0) {
       // 满足闰年的条件
       alert('这个月有29天');
     } else {
       alert('这个月有28天');
     }
     break;
    default:
     alert('你输入的月份有误');
    }
    

二、循环语句

  1. while 循环
    while 循环用于在条件满足时重复执行特定代码块。语法如下:

    while (condition) {
    // code to be executed
    }
    

    示例代码:

    let i = 0;
    while (i < 5) {
    console.log(i);
    i++;
    }
    
  2. do...while 循环
    do...while 循环用于在条件满足时重复执行特定代码块,但它会先执行一次代码块,再判断条件是否满足。语法如下:

    do {
    // code to be executed
    } while (condition);
    

    示例代码:

    let i = 0;
    do {
    console.log(i);
    i++;
    } while (i < 5);
    
  3. for 循环
    for 循环用于在指定次数内重复执行特定代码块。语法如下:

    for (initialization; condition; increment) {
    // code to be executed
    }
    

    示例代码:

    for (let i = 0; i < 5; i++) {
    console.log(i);
    }
    

三、练习1:实现乘法口诀表

for (var i = 1; i <= 9; i++) {
  var c = '';

  for(var x = 1; x <= i; x++) {
    c = c + x + '*' + i + '=' + i * x + ', ';
  }
  document.write(c);
  document.write('<br />');
}

四、练习2:鸡兔同笼问题,有35个头,94条腿,鸡兔各几只

// 方法1:
// 假设小鸡有a只,兔子有b只
for (var a = 0; a <= 35; a++) {
  for (var b = 0; b <= 35; b++) {
    if (a + b == 35 && 2 * a + 4 * b == 94) {
      console.log('小鸡有' + a + '只,兔子有' + b + '只');
    }
  }
}

// 方法2:
// 假设小鸡有a只,那么兔子有35 - a只
for (var a = 0; a < 35; a++) {
    var b = 35 - a;
    if (2 * a + 4 * b == 94) {
        console.log('小鸡有' + a + '只,兔子有' + b + '只');
    }
}

五、练习3:猜数字,随机生成一个2-99的数字,让用户猜测这个数字是几,用户输入自己的猜测后,提示”输入的数字太大“或”输入的数字太小“,不断重复这个过程,直到用户准确猜到这个数字

// 随机一个数字,2~99之间
  var answer = parseInt(Math.random() * 98) + 2;
  // 此时范围的最小值和最大值,这个数值是用来提示用户的
  var min = 1;
  var max = 100;

  do {
      // 询问用户猜测的数字
      var n = Number(prompt('请猜测数字' + min + '~' + max));
      // 验证用户输入的数字是否在范围内
      if (n <= min || n >= max) {
          alert('你输入的数字不在范围内');
          // 不在区间内,直接放弃这次循环,就开启下一次迭代
          continue;
      }

      // 判断用户输入的数字和answer的关系
      if (n > answer) {
          alert('你输入的数字太大了');
          // 因为用户输入的数字较大,所以可以让此时的最大范围数字变为用户输入的值
          max = n;
      } else if (n < answer) {
          alert('你输入的数字太小了');
          // 因为用户输入的数字较小,所以可以让此时的最小范围数字变为用户输入的值
          min = n;
      }
  } while (n != answer);

  // 出了do while循环,就说明n和answer相等了,因为只有相等了,才能出循环。
  alert('恭喜猜对了!');
Copyright © 高笑石 (2021 - present) all right reserved,powered by Gitbook文件修订时间: 2023-04-27 13:31:05

results matching ""

    No results matching ""